/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.saber.certificacao.modelos.relacionamentos.idcompostos;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import org.apache.commons.lang.StringUtils;

/**
 *
 * @author gbvbahia
 */
@Embeddable
public class IdProfessorVersaoPk implements Serializable {

    @Column(name = "aluno_id")
    private Long professorId;
    @Column(name = "versao_id")
    private Long versaoId;

    public IdProfessorVersaoPk() {
    }

    /**
     * Utiliza a string que é devolvida no toString
     * Utilizado para agilizar a criação de construtores
     * @param toString 
     */
    public IdProfessorVersaoPk(String toString) {
        this.professorId = new Long(StringUtils.substringBefore(toString, "-"));
        this.versaoId = new Long(StringUtils.substringAfter(toString, "-"));
    }

    public IdProfessorVersaoPk(Long professorId, Long versaoId) {
        this.professorId = professorId;
        this.versaoId = versaoId;
    }

    public Long getProfessorId() {
        return professorId;
    }

    public void setProfessorId(Long professorId) {
        this.professorId = professorId;
    }

    public Long getVersaoId() {
        return versaoId;
    }

    public void setVersaoId(Long versaoId) {
        this.versaoId = versaoId;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final IdProfessorVersaoPk other = (IdProfessorVersaoPk) obj;
        if (this.professorId != other.professorId && (this.professorId == null || !this.professorId.equals(other.professorId))) {
            return false;
        }
        if (this.versaoId != other.versaoId && (this.versaoId == null || !this.versaoId.equals(other.versaoId))) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 97 * hash + (this.professorId != null ? this.professorId.hashCode() : 0);
        return hash;
    }

    /**
     * ToString utilizando em um dos construtores
     * não alterar se grande revisão!!!
     * @return 
     */
    @Override
    public String toString() {
        return this.professorId + "-" + this.versaoId;
    }
}
